package br.com.inner.service;

import java.math.BigDecimal;
import java.util.List;

import br.com.inner.custom.CustomException;
import br.com.inner.dao.UsuarioDBDao;
import br.com.inner.dao.UsuarioDao;
import br.com.inner.modelo.Job;
import br.com.inner.modelo.JobEmpresa;
import br.com.inner.modelo.Usuario;

public class UsuarioDaoService implements UsuarioService {

	private UsuarioDao dao;

	public UsuarioDaoService() {
        this.dao = new UsuarioDBDao();
        System.out.println("Startou o UsuarioDBDao com sucesso");
    }
	
	public Usuario getAll() throws CustomException {
		// TODO Auto-generated method stub
		return dao.getAll();
	}
	
	public List<Usuario> getAllUsuarios() throws CustomException {
		// TODO Auto-generated method stub
		return dao.getAllUsuarios();
	}
	
	public List<Usuario> getAllOperadores() throws CustomException{
		return dao.getAllOperadores();
	}
	
	public List<Usuario> getAllAdministradores() throws CustomException{
		return dao.getAllAdministradores();
	}
	
	public List<Usuario> esqueciSenha(String cgc, String emailUsuario) throws CustomException{
		return dao.esqueciSenha(cgc, emailUsuario);
	}
	
	public Usuario getUsuario(BigDecimal id) throws CustomException{
		return dao.getUsuario(id);
	}
	
	public void insertUsuario(Usuario cat) throws CustomException{
		dao.insert(cat);
	}
	
	public void updateUsuario(Usuario cat){
		dao.update(cat);
	}
	
	public void deleteUsuario(BigDecimal id){
		dao.delete(id);
	}
	
	public Usuario verificaSenhaUsuario(String nmUsuario, String passUsuario) {
		return dao.verificaSenhaUsuario(nmUsuario, passUsuario);
	}
	
	public Usuario verificaSenhaUsuario(BigDecimal cdUsuario, String passUsuario) {
		return dao.verificaSenhaUsuario(cdUsuario, passUsuario);
	}
	
	public void ativarUsuario(BigDecimal cdUsuario)  throws CustomException{
		dao.ativarUsuario(cdUsuario);
	}
	
	public List<Usuario> pesquisaUsuario(String nmUsuario) throws CustomException{
		return dao.pesquisaUsuario(nmUsuario);
	}
	
	public void mudarStatusOperador(BigDecimal cdUsuario){
		dao.mudarStatusOperador(cdUsuario);
	}
	
	public List<Job> listarEnviados(BigDecimal cdUsuario) throws CustomException{
		return dao.listarEnviados(cdUsuario);
	}
	
	public List<Usuario> getAllOperadoresUsuario(BigDecimal cdUsuario) throws CustomException{
		return dao.getAllOperadoresUsuario(cdUsuario);
	}
	
	public List<JobEmpresa> listarRecebidos(BigDecimal cdUsuario) throws CustomException{
		return dao.listarRecebidos(cdUsuario);
	}
}